Introduction to Abstract Interpretation

نویسنده

  • Mads Rosendahl
چکیده

interpretation is a tool for constructing semantics based program analyses. These notes are written for the Introduction to Semantics course and assume knowledge of the Introduction to Domain Theory notes. They present some of the basic ideas in abstract interpretation using examples of program analyses expressed in this framework. The current version is still not completely finished. Suggestions for improvements and corrections are most welcome. 1 Abstract interpretation Abstract interpretation is a semantics-based program analysis method. The semantics of a programming language can be specified as a mapping of programs to mathematical objects that describes the input-output function for the program. In an abstract interpretation the program is given a mathematical meaning in the same way as with a normal semantics. This however is not necessarily the standard meaning, but it can be used to extract information about the computational behaviour of the program.interpretation is a semantics-based program analysis method. The semantics of a programming language can be specified as a mapping of programs to mathematical objects that describes the input-output function for the program. In an abstract interpretation the program is given a mathematical meaning in the same way as with a normal semantics. This however is not necessarily the standard meaning, but it can be used to extract information about the computational behaviour of the program. 1.1 Abstract interpretation The central idea in abstract interpretation is to construct two different meanings of a programming language where the first gives the usual meaning of programs in the language, and the other can be used to answer certain questions about the runtime behaviour of programs in the language. The standard meaning of programs can typically be described by their input-output function, and the standard interpretation will then be a function 1 which maps programs to their input-output functions. The abstract meaning will be defined by a function 2 which maps programs to mathematical objects that can be used to answer the question raised by a program analysis problem. The correctness (or soundness) of this approach to program analysis can be established by proving a relationship between these two interpretations. An abstract interpretation of a language consists of the two function 1 and 2 together with a relation R between the meanings provided by these functions such that for all programs p the relationship holds: 1[[p]] R 2[[p]] The relationship R between the two meanings describes which real program behaviours are described by an abstract meaning. This can be sketched as

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Analysis of disassembled executable codes by abstract interpretation

The aim of this paper is to dene the abstract domain, abstract operator, abstract semantic, the environments and states of disassembled executable codes as well as a way to analysis the disassembled executable codes. Nowadays, static analysis on disassembled code going to grow. Reverse engineering and malware analysis use this technique. Thus, we tried to perform pluralization the requirements ...

متن کامل

Introduction to Abstract Interpretation

We present the basic theory of abstract interpretation, and its application to static program analysis. The goal is not to give an exhaustive view of abstract interpretation, but to give enough background to make papers on abstract interpretation more understandable. Notations: λx.M denotes the function that maps x to M . f [x 7→ M ] denotes the function f extended so that x is mapped to M . If...

متن کامل

An Introduction to Abstract Interpretation

Predicate Transformer (Sketchy) ̧P ‹ post[[X:=E]] ‹ ‚P(fq1; : : : ; qng) where fq1; : : : ; qng „ fp1; : : : ; pkg = ̧P ‹ post[[X:=E]]( n \ i=1 I[[qi]]) def. ‚P = ̧P(f[X=[[E]]] j  2 n \ i=1 I[[qi]]g) def. post[[X:=E]] = ̧P( n \ i=1 f[X=[[E]]] j  2 I[[qi]]g) def. \ = ̧P( n \ i=1 I[[qi[X=E]]]) def. substitution = fpj j I[[qi[X=E]) pj]]g def. ̧P ) fpj j theorem_prover[[qi[X=E]) pj]]g since th...

متن کامل

Basic concepts of abstract interpretation

A brief introduction to the theory of Abstract Interpretation, examplified by constructing a hierarchy of partial traces, reflexive transitive closure, reachable states and intervals abstract semantics of transition systems.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995